package com.broadsoft.platform.wfengine.runtime;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.broadsoft.platform.wfengine.NodeType;
import com.broadsoft.platform.wfengine.WorkflowType;
import com.broadsoft.platform.wfengine.event.WfEvent;

/**
 * 
 * FIXME: <A few lines of description of what class is about and what it does.>
 * 
 * <HR/>
 * <B>Modification Block</B>
 * <P>
 * Version: FIXME: 1.0.1 <BR>
 * Author: FIXME: luzhen Date: 2011-9-15 TAG: <A short name to find out all changed made by this modification.>
 * Comments: Created. Bug fix NO.: <If required>
 * </P>
 * <P>
 * ... Other Modifications following above structure.
 * </P>
 * 
 */
public class WfContext {
    private WorkflowType workflowType;
    private NodeType previousNode;
    private WfEvent event;
    private WfContext parentWfContext;

    public WfContext() {

    }

    public WfContext(WfContext parentWfContext) {
        this.parentWfContext = parentWfContext;
    }

    private Map<String, Map<String, List<NodeType>>> mapOfJoinNode = new HashMap<String, Map<String, List<NodeType>>>();

    public Map<String, Map<String, List<NodeType>>> getMapOfJoinNode() {
        return mapOfJoinNode;
    }

    public WfEvent getEvent() {
        return event;
    }

    public void setEvent(WfEvent event) {
        this.event = event;
    }

    public NodeType getPreviousNode() {
        return previousNode;
    }

    public void setPreviousNode(NodeType currentNode) {
        this.previousNode = currentNode;
    }

    public WorkflowType getWorkflowType() {
        return workflowType;
    }

    public void setWorkflowType(WorkflowType workflowType) {
        this.workflowType = workflowType;
    }

    public WfContext getParentWfContext() {
        return parentWfContext;
    }

    public void setParentWfContext(WfContext parentWfContext) {
        this.parentWfContext = parentWfContext;
    }

    @Override
    public String toString() {
        return "WfContext [workflowType=" + workflowType + ", previousNode=" + previousNode + ", event=" + event
                + ", parentWfContext=" + parentWfContext + "]";
    }

}
